Multiprotocol Label Switching (MPLS) is a forwarding protocol, which uses labels to increase the speed and efficiency with which a data network transports data packets. In contrast to a traditional IP address, the MPLS protocol uses a limited set of labels on the basis of which switching decisions are made into an MPLS domain. Each data packet contains a label stack that can hold one or more labels.
When a data packet enters an MPLS domain via a Label Edge Router (LER), the LER determines if the data packet should be accepted and in the affirmative pushes one or more labels in the label stack. The labels determine the path or part of the path the data packet should follow in the MPLS domain. Next, the data packet leaves the LER and reaches a Label Switching Router (LSR) that examines the label at the topmost position in the label stack and determines how the data packet should be switched. The LSR can perform label stack manipulations, such as swapping or pushing other labels in the label stack that will determine where the data packet will go next. When the data packet reaches the end of the MPLS domain, it can egress the domain via another LER, which pops all the labels in the stack thus restoring the data packet to its condition prior to entering the MPLS domain.
Since different parts of a large data network are usually managed by different entities, such as different carriers, there is generally no network-wide label convention among the carriers. Accordingly, the same label can have a different switching significance in different locations of the network. The use of a stack for temporarily storing labels in the data packet ensures that only the correct label is presented for processing at the location where it has a proper switching significance. This however holds true only if all the stack manipulations occurring along the path of the data packet are flawless. If for some reason an error is made and a label is incorrectly pushed in the stack or popped from the stack, the remaining labels will be incorrectly interpreted at downstream LSRs with the result that the data packet will follow an erroneous path. A similar problem may occur if a connection error exists between two LSRs in the data network. The connection error will cause data packets to be incorrectly received by an LSR that however, will not be able to recognize the problem and will simply incorrectly forward the data packets at other nodes.
Another drawback associated with currently implemented MPLS protocols is their inability to provide a clear demarcation between the network and its users. Accordingly, it is difficult for the data network to enforce admission control, hence compliance with a Service Level Agreement (SLA) or guarantee network performance such as Quality of Service (QoS) arrangements.
Accordingly, there exists a need in the industry to provide a novel mechanism for data packet transmission in a data network, based on label switching that avoids at least some of the problems associated with prior art methods.